1. Technical Field
The present invention relates in general to object-oriented computer systems. More specifically, the present invention relates to the field of distributed object systems.
2. Background Art
The development of the EDVAC computer system of 1948 is often cited as the beginning of the computer era. Since that time, computer systems have evolved into extremely sophisticated devices that may be found in many different settings. Computer systems typically include a combination of hardware (e.g., semiconductors, circuit boards, etc.) and software (e.g., computer programs). As advances in semiconductor processing and computer architecture push the performance of the computer hardware higher, more sophisticated computer software has evolved to take advantage of the higher performance of the hardware, resulting in computer systems today that are much more powerful than just a few years ago.
Other changes in technology have also profoundly affected how we use computers. For example, the widespread proliferation of computers prompted the development of computer networks that allow computers to communicate with each other. With the introduction of the personal computer (PC), computing became accessible to large numbers of people. Networks for personal computers were developed to allow individual users to communicate with each other. In this manner, a large number of people within a company could communicate at the same time with a software application running on one computer system.
One significant computer network that has recently become very popular is the Internet. The Internet grew out of the modern proliferation of computers and networks, and has evolved into a sophisticated worldwide network of computer systems. This worldwide network is often referred to as the “world-wide web”, or WWW. A user at an individual PC or workstation that wishes to access the WWW, typically does so using a software application known as a web browser. A user that accesses the WWW with a web browser is known as a web client. Web browsers communicate with computer systems called web servers. Typically, a web client accesses a resource on the WWW by transmitting a special address known as a Uniform Resource Locator (URL) to the web server. A URL identifies a particular web server and a particular resource on the web server that the web client wishes to access. The web server then delivers the resource to the web browser.
The web server thus acts as a type of specialized file server, delivering resources when requested by the client. While this relatively simple interaction has formed the basis for the recent explosion in the size and use of the WWW, it is limited in the type of functionality it can provide. To fully realize the potential of the WWW in commerce and other activities, the WWW needs to be better integrated with existing technologies in a way that fully utilizes the potential of the WWW while leveraging existing technologies. Two such technologies are oriented programming and distributed object systems.
Object oriented programming is a method of programming computer programs that has become very popular over the past several years. Computer programs written in an object-oriented environment are known as object-oriented programs. Object-oriented programming differs from standard procedural programming in that it uses objects, not algorithms, as its fundamental building blocks. Thus an object-oriented program is a collection of objects, each designed to perform a specific task on specific sets of data, which work together to accomplish the desired function.
Object systems that allow interaction between objects in remote locations over a communications link are commonly referred to as distributed object systems. In these distributed systems a “client object” on a client system calls methods on a “server object” on an object server system, which may be in a remote location. The client object—server object interactions form the basis for the distributed object system. Distributed object systems define the protocols used to facilitate the client these interactions. The protocols require that specific server object configuration information be available to the client system to facilitate remote object interactions. This configuration information is generally determined when the server object is created and is then installed on the client system during the client system installation. Thus, the information needed for client objects on the client system to call methods on server objects on the server system is available on the client system.
This system works well when there is configuration information installed on the client system. However, in some cases the necessary configuration information is not installed on the client system. These clients are referred to as “zero install clients.” Where no traditional client installation is preformed (i.e., the client is a “zero install” client) there is no opportunity to provide the required configuration information. For example, a web browser can be a used as a client system to access remote server objects through the WWW. Suppose that a company wishes to allow its customers to interact with distributed objects through their web server. When a new customer first accesses the web server, the customer's web browser will have no information regarding the specific aspects of the company's object server system. In particular, there will have been no traditional object client system installation during which the required object server installation information could have been installed on the customer's machine. The web browser, is thus a zero install client, and client objects on the web browser cannot interact with server objects on the company's object servers.
Without a method and apparatus to provide configuration information to clients such as web browsers, interaction between remote distributed objects will not be possible via the world-wide-web.